package com.guoheng.hazard.sys.mapper.hazard;

import com.guoheng.hazard.sys.model.dto.hazard.MajorHazardPartName;
import com.guoheng.hazard.sys.model.entity.hazard.MajorHazardUnit;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface MajorHazardUnitMapper {
    /**
     * [新增]
     * @date 2019/11/20
     **/
    int insert(MajorHazardUnit majorHazardUnit);

    /**
     * [刪除]
     * @date 2019/11/20
     **/
    int delete(int id);

    /**
     * [更新]
     * @date 2019/11/20
     **/
    int update(MajorHazardUnit majorHazardUnit);

    /**
     * [查询] 根据主键 id 查询
     * @date 2019/11/20
     **/
    MajorHazardUnit load(Long id);

    /**
     * [查询] 分页查询 count
     * @date 2019/11/20
     **/
    int pageListCount(int offset,int pagesize);

    /**
     * 方法功能描述: 根据重大危险源id查询属于重大危险源的 库区/储罐/生产场所
     *
     * @param majorId 重大危险源id
     * @return  List<MajorHazardUnit>
     */
    List<MajorHazardUnit> getMajorHazardUnitByMajorId(@Param("majorId") Long majorId);

    /**
     * 方法功能描述: 逻辑删除重重大危险源涉及的单元
     *
     * @param majorHazardId 重大危险源id
     * @return int
     */
    int deleteMajorHazardInfo(Long majorHazardId);

    /**
     * 方法功能描述: 传感器，摄像头，重大危险源类型
     *
     * @param majorHazardId 重大危险源id
     * @param partType 组成类型
     * @return List<MajorHazardPartName>
     */
    List<MajorHazardPartName> getPartName(@Param("majorHazardId") Long majorHazardId, @Param("partType") Integer partType);
}